/* NOTICE
    OpenJaWS - Open Java Weather Station
    
    Copyright (C) 2008 Grant Gardner <grant@lastweekend.com.au>
    
    OpenJaWS is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
    
NOTICE */

package au.com.lastweekend.openjaws.web;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

import au.com.lastweekend.openjaws.api.Readings;
import au.com.lastweekend.openjaws.api.WeatherStationException;

@Controller
public class WeatherController {

    @SuppressWarnings("unchecked")
    public static final Class SPRING_CLASS = WeatherController.class;

    private WebStation station;

    @Autowired
    public WeatherController(WebStation station) {

        this.station = station;
    }

    @RequestMapping("/weather.do")
    public ModelMap getWeather() throws WeatherStationException {

        ModelMap m = new ModelMap();
        m.addAttribute("stationName", station.getName());
        Readings readings = station.fetchReadings();
        if (readings == null) {
            throw new WeatherStationException("Station not ready");
        }
        m.addAttribute("readings", readings);
        return m;
    }
}
